package com.ktjiaoyu.server.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ktjiaoyu.server.pojo.Menu;
import com.ktjiaoyu.server.pojo.Role;
import com.ktjiaoyu.server.vo.AdminRoleVo;
import com.ktjiaoyu.server.vo.RoleMenuVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jjx
 * @since 2024-01-23
 */
public interface IRoleService extends IService<Role> {
    // 查询角色列表信息
    public List<Role> roleList();

    // 为用户分配多个角色时，需要往t_admin_role表中插入数据
    public void batchInsertAdminRole(AdminRoleVo vo);

    // 通过操作员ID查询其拥有的角色列表权限
    public AdminRoleVo getAdminRoleList(Integer adminId);

    /**
     * 分页显示管理员列表
     * @param page 分页所需要的Page集合
     * @param query 查询条件(按用户名或手机号模糊查询)
     */
    IPage<Role> selectByPage(Page<Role> page, String query, String sort);

    // 保存角色信息
    public boolean saveRole(Role role);

    // 保存修改后的角色信息
    boolean updateRole(Role role);

    // 通过角色ID删除角色信息
    boolean delRoleById(Integer roleId);

    // 为角色分配多个权限时，需要往t_menu_role表中插入数据
    public void batchInsertRoleMenu(RoleMenuVo vo);

    // 根据角色ID删除对应的权限,将当前角色最新的权限列表进行返回
    public List<Menu> delMenuByRoleId(Integer roleId, Integer menuId);

}
